﻿using System.Collections.Generic;
using System.Linq;

namespace Renren.Helpers
{
    public static class Emotions
    {
        private static Dictionary<string, string> _dic;
        public static Dictionary<string, string> Dic
        {
            get
            {
                if (_dic == null)
                {
                    _dic = new Dictionary<string, string>();
                    _dic.Add("谄笑", "chanxiao");
                    _dic.Add("吃饭", "chifan");
                    _dic.Add("调皮", "tiaopi");
                    _dic.Add("尴尬", "ganga");
                    _dic.Add("汗", "han");
                    _dic.Add("惊恐", "jingkong");
                    _dic.Add("囧", "jiong");
                    _dic.Add("可爱", "keai");
                    _dic.Add("酷", "shuaku");
                    _dic.Add("流口水", "liukoushui");
                    _dic.Add("色", "se");
                    _dic.Add("生病", "shengqi");
                    _dic.Add("叹气", "tanqi");
                    _dic.Add("淘气", "taoqi");
                    _dic.Add("舔", "tian");
                    _dic.Add("偷笑", "touxiao");
                    _dic.Add("吐", "tu");
                    _dic.Add("吻", "wen");
                    _dic.Add("晕", "yun");
                    _dic.Add("住嘴", "zhuzui");
                    _dic.Add("大笑", "daxiao");
                    _dic.Add("害羞", "haixiu");
                    _dic.Add("口罩", "kouzhao");
                    _dic.Add("哭", "ku");
                    _dic.Add("困", "kun");
                    _dic.Add("难过", "nanguo");
                    _dic.Add("生气", "shengqi");
                    _dic.Add("书呆子", "shudaizi");
                    _dic.Add("微笑", "weixiao");
                    _dic.Add("不", "bu");
                    _dic.Add("惊讶", "jingya");
                    _dic.Add("kb", "kb");
                    _dic.Add("sx", "sx");
                    _dic.Add("gl", "gl");
                    _dic.Add("yl", "yl");
                    _dic.Add("hold1", "hold1");
                    _dic.Add("cold", "cold");
                    _dic.Add("bw", "bw");
                    _dic.Add("nuomi", "nuomi");
                    _dic.Add("rs", "rs");
                    _dic.Add("sbq", "sbq");
                    _dic.Add("th", "th");
                    _dic.Add("mb", "mb");
                    _dic.Add("sn", "sn");
                    _dic.Add("long1", "long1");
                    _dic.Add("long2", "long2");
                    _dic.Add("long3", "long3");
                    _dic.Add("long4", "long4");
                }
                return _dic;
            }
        }

        public static string GetUri(string token)
        {
            string uri = string.Empty;
            if (Dic.ContainsKey(token))
            {
                uri = CombineUri(Dic[token]);
            }
            return uri;
        }

        public static List<string> GetAllUri()
        {
            return Dic.Select(pair => CombineUri(pair.Value)).ToList();
        }

        public static string GetStatus(string uri)
        {
            var token = uri.Split('/').Last().Split('.').First();
            return "(" + Dic.First(pair => pair.Value == token).Key + ")";
        }

        private static string CombineUri(string emotion)
        {
            return "/Images/Emotions/" + emotion + ".png";
        }
    }
}
